package com.zkthink.ceres.pay.service;

import com.zkthink.base.R;
import com.zkthink.base.service.SuperService;
import com.zkthink.ceres.pay.dto.WxAuthAccountDTO;
import com.zkthink.ceres.pay.dto.WxAuthQrCodeDTO;
import com.zkthink.ceres.pay.dto.WxAuthStatusDTO;
import com.zkthink.ceres.pay.dto.WxPayAuthSaveDTO;
import com.zkthink.ceres.pay.entity.WxPayAuth;

/**
 * <p>
 * 业务接口
 * 微信支付认证
 * </p>
 *
 * @author vivi.huang
 * @date 2020-06-28
 */
public interface WxPayAuthService extends SuperService<WxPayAuth> {

    /**
     * 根据商户code 获取 微信认证详情
     * @return
     */
    R<WxPayAuth> getWxPayAuthDetail();

    /**
     * 返回签约二维码
     * @return
     */
    R<WxAuthQrCodeDTO> getWxPayAuthQrCode();

    /**
     * 返回微信认证状态
     * @return
     */
    R<WxAuthStatusDTO> getWxPayAuthStatus();

    /**
     * 提交认证
     * @param wxPayAuthSaveDTO
     * @return
     */
    R<WxPayAuth> submitPayAuth(WxPayAuthSaveDTO wxPayAuthSaveDTO);

    /**
     * 查询账户认证详情
     * @return
     */
    R<WxAuthAccountDTO> getWxAuthAccountDetail();

    /**
     * 检查是否打款成功
     * @return
     */
    R<WxAuthAccountDTO> getWxAuthAccountStatus();

    /**
     * 检查微信支付认证状态
     * @return
     */
    Boolean checkApplyStatus();
}
